package com.bridgeintelligent.tag.user.query.service;

import com.bridgeintelligent.tag.user.mgmt.entity.Result;
import com.bridgeintelligent.tag.user.mgmt.pojo.Power;
import com.bridgeintelligent.tag.user.mgmt.pojo.Role;
import com.bridgeintelligent.tag.user.mgmt.pojo.TagPermission;

import java.util.List;
import java.util.Map;

/**
 * 角色服务层接口
 */
public interface RoleQueryService {

    /**
     * 校验用户名是否重复
     */

    boolean checkRoleName(String roleName);


    /**
     * 根据角色id查询角色名
     *
     * @param roleId
     * @return
     */
    String findRoleNameById(String roleId);

    /**
     * 根据角色id查询单个角色信息及其权限信息
     *
     * @param roleId
     * @return
     */
    Map<String, Object> findOneByRoleId(String roleId);

    /**
     * 根据角色id查询其权限id
     *
     * @param roleId
     * @return
     */
    List<String> findPowerByRoleId(String roleId);

    /**
     * 查询所有角色
     *
     * @return
     */
    List<Role> findAllRole();

    /**
     * 分页条件查询
     * @param queryPageBean
     * @return
     */
//    PageResult findPageRole(QueryPageBean queryPageBean);

    /**
     * 获取角色列表
     *
     * @param pageNumber
     * @param pageSize
     * @param roleName
     * @return
     */
    Result list(Integer pageNumber, Integer pageSize, String roleName);

    /**
     * 查询所有权限列表
     *
     * @param s
     * @return
     */
    List<Power> findAllPower(String s);

    /**
     * 根据角色名称查询
     *
     * @param roleName
     * @return
     */
    String findRoleIdByName(String roleName);

    /**
     * 根据角色ID查询对应的标签权限
     * @param roleId
     * @return
     */
    List<TagPermission> findTagPermsByRoleId(String roleId);

}
